package com.ev.asl.domain;

import com.alibaba.fastjson.JSONObject;
import com.ev.mes.vo.WorkTimeVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 成型日报表
 * @author 姚家乐
 * @since 2021/5/26 12:40
 */
@Data
@ApiModel(value = "成型日报表")
public class MoldingDailyDO implements Serializable {
    //自增主键
    @ApiModelProperty(value = "自增主键")
    private Long       id;

    /**
     * 日期
     */
    @ApiModelProperty(value = "日期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    private Date       indicateDate;

    @ApiModelProperty(value = "开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date       startDate;

    @ApiModelProperty(value = "结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date       endDate;

    /**
     * 作业时间集合（Map<String,String>）
     */
    @ApiModelProperty(value = "作业时间集合,无勤时间和事项集合")
    private String     workTimeMap;

    /**
     * 作业时间集合（Map<String,String>）
     */
    @ApiModelProperty(value = "作业时间集合,无勤时间和事项集合")
    private String     workTimeMap2;
//
//    /**
//     * 作业时间集合（Map<String,String>）
//     */
//    @ApiModelProperty(value = "作业时间集合,无勤时间和事项集合")
//    private List<WorkTimeVO> tableData;

    /**
     * 作业时间集合（Map<String,String>）
     */
    @ApiModelProperty(value = "作业时间集合,无勤时间和事项集合")
    private String tableDate2;

    /**
     * 组别(0:A,1:B,2:C)
     */
    @ApiModelProperty(value = "组别(0:A,1:B,2:C)")
    private Integer    mGroup;

    /**
     * 应出勤
     */
    @ApiModelProperty(value = "应出勤")
    private Integer    shouldBeAttendance;

    /**
     * 特记事项
     */
    @ApiModelProperty(value = "特记事项")
    private String specialNoteItem;

    /**
     * 模具型号
     */
    @ApiModelProperty(value = "模具型号")
    private String moldModel;

    /**
     * 开始lot no
     */
    @ApiModelProperty(value = "开始lot no")
    private String lotNoStart;

    /**
     * 结束lot no
     */
    @ApiModelProperty(value = "结束lot no")
    private String lotNoEnd;

    /**
     * 实出勤
     */
    @ApiModelProperty(value = "实出勤")
    private Integer    realAttendance;;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String     note;

    /**
     * 成型生产指示主键id
     */
    @ApiModelProperty(value = "成型生产指示主键id")
    private Long       mpiId;

    /**
     * 成型生产指示编号
     */
    @ApiModelProperty(value = "成型生产指示编号")
    private String     mpiNo;

    /**
     * 成型生产指示主键2id
     */
    @ApiModelProperty(value = "成型生产指示主键id2")
    private Long       mpiId2;

    /**
     * 成型生产指示编号2
     */
    @ApiModelProperty(value = "成型生产指示编号2")
    private String     mpiNo2;

    /**
     * 设备id
     */
    @ApiModelProperty(value = "设备id")
    private Long       deviceId;

    /**
     * 设备编号
     */
    @ApiModelProperty(value = "设备编号")
    private String     deviceNo;


    /**
     * 指示数量
     */
    @ApiModelProperty(value = "指示数量")
    private BigDecimal instructionQty;

    /**
     * 生产数量
     */
    @ApiModelProperty(value = "生产数量")
    private BigDecimal productionQty;
    /**
     * 不良数量
     */
    @ApiModelProperty(value = "不良数量")
    private BigDecimal inspectionQty;

    /**
     * 不良废弃量（KG）物料id
     */
    @ApiModelProperty(value = "不良废弃量（KG）物料id")
    private Long       badWasteMaterielId;
    /**
     * 不良废弃量（KG）物料名称
     */
    @ApiModelProperty(value = "不良废弃量（KG）物料名称")
    private String     badWasteMaterielName;
    /**
     * 不良废弃量（KG）
     */
    @ApiModelProperty(value = "不良废弃量（KG）")
    private BigDecimal badWaste;

    /**
     * 粉碎发生量（KG）物料id
     */
    @ApiModelProperty(value = "粉碎发生量（KG）物料id")
    private Long       amountOfCrushingMaterielId;
    /**
     * 粉碎发生量（KG）物料名称
     */
    @ApiModelProperty(value = "粉碎发生量（KG）物料名称")
    private String     amountOfCrushingMaterielName;
    /**
     * 粉碎发生量（KG）
     */
    @ApiModelProperty(value = "粉碎发生量（KG）")
    private BigDecimal amountOfCrushing;

    /**
     * 粒子形态
     */
    @ApiModelProperty(value = "粒子形态")
    private String granuleForm;
    /**
     * 树脂形态
     */
    @ApiModelProperty(value = "树脂形态")
    private String resinForm;
    /**
     * 桶形态
     */
    @ApiModelProperty(value = "桶形态")
    private String bucketForm;

    /**
     * 粒子形态
     */
    @ApiModelProperty(value = "粒子形态")
    private String granuleForm2;
    /**
     * 树脂形态
     */
    @ApiModelProperty(value = "树脂形态")
    private String resinForm2;
    /**
     * 桶形态
     */
    @ApiModelProperty(value = "桶形态")
    private String bucketForm2;

    /**
     * 原料投入量（KG）
     * {
     * "material1":"原料1",
     * "materia2":"原料2",
     * "material3":"原料3",
     * "materia4":"原料4"
     * }
     */
    @ApiModelProperty(value = "原料理论投入量（KG）（List<>原料代码，原料名称，规格型号，投入量）")
    private String     feedingMaterial;

    @ApiModelProperty(value = "原料理论投入量2（KG）（List<>原料代码，原料名称，规格型号，投入量）")
    private String     feedingMaterial2;

    @ApiModelProperty(value = "原料实际投入量（KG）（List<>原料代码，原料名称，规格型号，投入量）")
    private String     feedingMaterialReality;

    /**
     * 卡箍数量标准
     */
    @ApiModelProperty(value = "卡箍数量标准")
    private BigDecimal latheDogNormQty;

    /**
     * 卡箍数据实际
     */
    @ApiModelProperty(value = "卡箍数据实际")
    private BigDecimal latheDogActualQty;

    /**
     * 使用盖注入口#1
     */
    @ApiModelProperty(value = "使用盖注入口#1")
    private String useCoverOne;

    /**
     * 使用盖注入口#2
     */
    @ApiModelProperty(value = "使用盖注入口#2")
    private String useCoverTwo;

    /**
     * 使用盖注入口#1
     */
    @ApiModelProperty(value = "使用盖注入口#1")
    private String useCoverThree;

    /**
     * 使用盖注入口#2
     */
    @ApiModelProperty(value = "使用盖注入口#2")
    private String useCoverFour;

    /**
     * 使用盖注入口#1
     */
    @ApiModelProperty(value = "使用盖注入口#1")
    private String useCoverFive;

    /**
     * 使用盖注入口#2
     */
    @ApiModelProperty(value = "使用盖注入口#2")
    private String useCoverSix;

    /**
     * 原料配比
     * [
         * {
         * Level:’外层’,
         * Name1:’’,
         * Proportion1:’’,
         * Name2:’’,
         * Proportion2:’’,
         * Name3:’’,
         * Proportion3:’’,
         * Name4:’’,
         * Proportion4:’’
         * },
             * {
             * Level:’中层’,
             * Name1:’’,
             * Proportion1:’’,
             * Name2:’’,
             * Proportion2:’’,
             * Name3:’’,
             * Proportion3:’’,
             * Name4:’’,
             * Proportion4:’’
             * }.
         * {Level:’内层’,
         * Name1:’’,
         * Proportion1:’’,
         * Name2:’’,
         * Proportion2:’’,
         * Name3:’’,
         * Proportion3:’’,
         * Name4:’’,
         * Proportion4:’’
         * }
     * ]
     */
    @ApiModelProperty(value = "原料配比（List<>原料代码，原料名称，规格型号，投入量）")
    private String rawMaterialRatio;


    /**
     * 不良现况（List<>不良项目，数量（EA））
     */
    @ApiModelProperty(value = "不良现况（List<>不良项目，数量（EA））")
    private String     badSituation;
    /**
     * 未达要因（List<>未达项目，数量（EA））
     */
    @ApiModelProperty(value = "未达要因（List<>未达项目，数量（EA））")
    private String     failedReach;

    /**
     * 成型设备重要参数（Map<>冷却机温度(℃)，空气压力(Mpa),成型时间(sec),一次冷却时间(sec)）
     */
    @ApiModelProperty(value = "成型设备重要参数（Map<>冷却机温度(℃)，空气压力(Mpa),成型时间(sec),一次冷却时间(sec)）")
    private String     importantParametersMoldingEquipment;
    /**
     * 设备异常现况
     */
    @ApiModelProperty(value = "设备异常现况（List<>设备名，时间,主要问题现况）")
    private String     equipmentAbnormalStatus;

    /**
     * 设备异常现况时间
     */
    @ApiModelProperty(value = "设备异常现况（List<>设备名，时间,主要问题现况）")
    private BigDecimal     equipmentAbnormalTime;

    /**
     * 批号 批号根据：日期+组别+设备编号　生成
     */
    @ApiModelProperty(value = "批号")
    private String     batchNo;

    /**
     * 编制人员id
     */
    @ApiModelProperty(value = "编制人员id")
    private Long       staffingId;

    /**
     * 编制人员姓名
     */
    @ApiModelProperty(value = "编制人员姓名")
    private String     staffingName;

    /**
     * 审查人id
     */
    @ApiModelProperty(value = "审查人id")
    private Long       auditorId;

    /**
     * 审查人姓名
     */
    @ApiModelProperty(value = "审查人姓名")
    private String     auditorName;

//    /**
//     * 审查状态(0:未审查，1；已审查)
//     */
//    @ApiModelProperty(value = "审查状态(0:未审查，1；已审查)")
//    private Integer    auditorStatus;

    /**
     * 批准人id
     */
    @ApiModelProperty(value = "批准人id")
    private Long       approverId;

    /**
     * 批准人姓名
     */
    @ApiModelProperty(value = "批准人姓名")
    private String     approverName;

    /**
     * 状态(0:未批准,1:已审查，2:已批准)
     */
    @ApiModelProperty(value = "状态(0:未批准,1:已审查，2:已批准，3:已提交)", hidden = true)
    private Integer    status;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人", hidden = true)
    private Long       createBy;
    /** 创建时间
     *
     */
    @ApiModelProperty(value = "创建时间", hidden = true)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date       createTime;
    /** 修改人
     *
     */
    @ApiModelProperty(value = "修改人", hidden = true)
    private Long       updateBy;
    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间", hidden = true)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date       updateTime;
    /**
     * 删除状态(0:未删除，1：已删除)
     */
    @ApiModelProperty(value = "删除状态(0:未删除，1：已删除)", hidden = true)
    private Integer    delFlag;


    @ApiModelProperty(value = "作业时间合计")
    private String     totalWorkTime;

    @ApiModelProperty(value = "无勤时间合计")
    private String     totalNoWorkTime;

    @ApiModelProperty(value = "合计人数")
    private Integer   totalPersonCount;

    @ApiModelProperty(value = "总的合计时间")
    private String     totalAllTime;

    @ApiModelProperty(value = "设备异常现况时间合计")
    private String     totalEquipmentAbnormalTime;

    @ApiModelProperty(value = "规格型号")
    private String specification;

    /**
     * 可粉碎块料
     */
    @ApiModelProperty("可粉碎块料")
    private BigDecimal totalCanCrushed;

    /**
     * 不可粉碎块料
     */
    @ApiModelProperty("不可粉碎块料")
    private BigDecimal totalNotCrushed;

    /**
     * 不良数量2
     */
    @ApiModelProperty("不良数量2")
    private BigDecimal inspectionQty2;

    /**
     * 不良数量3
     */
    @ApiModelProperty("不良数量3")
    private BigDecimal inspectionQty3;

    /**
     * 边角料
     */
    @ApiModelProperty("边角料")
    private BigDecimal leftoverMaterial;

    /**
     * 当班已报工数量
     */
    @ApiModelProperty("当班已报工数量")
    private BigDecimal totalReportedWork;

    /**
     * 报工人员
     */
    @ApiModelProperty("报工人员")
    private String reportWorkers;

    /**
     * 使用盖注入口#1数量
     */
    @ApiModelProperty("使用盖注入口#1数量")
    private BigDecimal useCoverOneQuantity;

    /**
     * 使用盖注入口#1 0不合格，1合格
     */
    @ApiModelProperty("使用盖注入口#1 0不合格，1合格")
    private Integer useCoverOneStatus;

    /**
     * 使用盖注入口#1作业者
     */
    @ApiModelProperty("使用盖注入口#1作业者")
    private String useCoverOneUser;

    /**
     * 使用盖注入口#2 数量
     */
    @ApiModelProperty("使用盖注入口#2 数量")
    private BigDecimal useCoverTwoQuantity;

    /**
     * 使用盖注入口#2 0不合格，1合格
     */
    @ApiModelProperty("使用盖注入口#2 0不合格，1合格")
    private Integer useCoverTwoStatus;

    /**
     * 使用盖注入口#2作业者
     */
    @ApiModelProperty("使用盖注入口#2作业者")
    private String useCoverTwoUser;

    /**
     * 保护盖
     */
    @ApiModelProperty("使用盖注入口#1保护盖")
    private String protectiveCoverOne;

    /**
     * 数量
     */
    @ApiModelProperty("使用盖注入口#1数量")
    private BigDecimal quantityOne;

    /**
     * 保护盖
     */
    @ApiModelProperty("使用盖注入口#2保护盖")
    private String protectiveCoverTwo;

    /**
     * 数量
     */
    @ApiModelProperty("使用盖注入口#2数量")
    private BigDecimal quantityTwo;

    /**
     * 使用盖注入口#1数量
     */
    @ApiModelProperty("使用盖注入口#1数量")
    private BigDecimal useCoverThreeQuantity;

    /**
     * 使用盖注入口#1 0不合格，1合格
     */
    @ApiModelProperty("使用盖注入口#1 0不合格，1合格")
    private Integer useCoverThreeStatus;

    /**
     * 使用盖注入口#1作业者
     */
    @ApiModelProperty("使用盖注入口#1作业者")
    private String useCoverThreeUser;

    /**
     * 使用盖注入口#2 数量
     */
    @ApiModelProperty("使用盖注入口#2 数量")
    private BigDecimal useCoverFourQuantity;

    /**
     * 使用盖注入口#2 0不合格，1合格
     */
    @ApiModelProperty("使用盖注入口#2 0不合格，1合格")
    private Integer useCoverFourStatus;

    /**
     * 使用盖注入口#2作业者
     */
    @ApiModelProperty("使用盖注入口#2作业者")
    private String useCoverFourUser;

    /**
     * 保护盖
     */
    @ApiModelProperty("使用盖注入口#1保护盖")
    private String protectiveCoverThree;

    /**
     * 数量
     */
    @ApiModelProperty("使用盖注入口#1数量")
    private BigDecimal quantityThree;

    /**
     * 保护盖
     */
    @ApiModelProperty("使用盖注入口#2保护盖")
    private String protectiveCoverFour;

    /**
     * 数量
     */
    @ApiModelProperty("使用盖注入口#2数量")
    private BigDecimal quantityFour;

    /**
     * 使用盖注入口#1数量
     */
    @ApiModelProperty("使用盖注入口#1数量")
    private BigDecimal useCoverFiveQuantity;

    /**
     * 使用盖注入口#1 0不合格，1合格
     */
    @ApiModelProperty("使用盖注入口#1 0不合格，1合格")
    private Integer useCoverFiveStatus;

    /**
     * 使用盖注入口#1作业者
     */
    @ApiModelProperty("使用盖注入口#1作业者")
    private String useCoverFiveUser;

    /**
     * 使用盖注入口#2 数量
     */
    @ApiModelProperty("使用盖注入口#2 数量")
    private BigDecimal useCoverSixQuantity;

    /**
     * 使用盖注入口#2 0不合格，1合格
     */
    @ApiModelProperty("使用盖注入口#2 0不合格，1合格")
    private Integer useCoverSixStatus;

    /**
     * 使用盖注入口#2作业者
     */
    @ApiModelProperty("使用盖注入口#2作业者")
    private String useCoverSixUser;

    /**
     * 保护盖
     */
    @ApiModelProperty("使用盖注入口#1保护盖")
    private String protectiveCoverFive;

    /**
     * 数量
     */
    @ApiModelProperty("使用盖注入口#1数量")
    private BigDecimal quantityFive;

    /**
     * 保护盖
     */
    @ApiModelProperty("使用盖注入口#2保护盖")
    private String protectiveCoverSix;

    /**
     * 数量
     */
    @ApiModelProperty("使用盖注入口#2数量")
    private BigDecimal quantitySix;
}
